Screen Open 0,320,256,8,0 : Curs Off : Hide On : Double Buffer : Autoback 0 : Flash Off : Cls 0
Screen 0
For N=1 To 7
Colour N,256+N
Next N
Screen Swap
Hide On
Curs Off
Cls 0
Degree
'
Update Off
Synchro Off
Sprite Update Off
Bob Update Off
Clip 1,1 To 316,255
B=14
Dim SYN#(360),COZ#(360)
Dim C(16)
For N=1 To B
Add F,1,1 To 2
OX#(N)=Sin(N*30)*4
OY#(N)=Cos(N*30)*6
Next N
For N=1 To B Step 2
OX#(N)=OX#(N)/2
OY#(N)=OY#(N)/2
Next N
View
For N=1 To 360
SYN#(N)=Sin(N*2)
COZ#(N)=Cos(N*2)
Next N
Cls 0
Auto View On
Do
If FLAG=1 Then Gosub Z Else Gosub Z2
If A=360 Then Gosub SHAPE
Add A,1,1 To 360 : If FLAG=1 Then Add N,4,1 To 360 Else N=N-4 : If N<2 Then N=360
Gosub CLAC : For KK=1 To B-2 : Ink C(KK) : Polygon DX#(KK),DY#(KK) To DX#(KK+1),DY#(KK+1) To DX#(KK+2),DY#(KK+2) To DX#(KK),DY#(KK) : Next KK : Screen Copy Logic,0,0,320,246 To Logic,SYN#(A)*45,COZ#(A)*45 : Wait Vbl : Screen Swap
If S=3 Then H=30 : XD=4 : YD=7 : Else Goto LANCASHIRE
For N=1 To B
Add F,1,1 To 2
OX#(N)=Sin(N*H)*XD
OY#(N)=Cos(N*H)*YD
Next N
For N=1 To B Step 2
OX#(N)=OX#(N)/2
OY#(N)=OY#(N)/2
Next N
Return
LANCASHIRE:
S=0
For N=1 To B
OX#(N)=Sin(N*30)*5
OY#(N)=Cos(N*30)*5
OZ#(N)=4
Next N
For N=1 To B Step 2
OX#(N)=OX#(N)/2
OY#(N)=OY#(N)/2
OZ#(N)=OZ#(N)/8
Next N
Timer=0
Do
If Timer>500 Then Goto LEICESTER
If FLAG=1 Then Gosub Z Else Gosub Z2
If FLAG=1 Then Add N,4,1 To 360 Else N=N-4 : If N<2 Then N=360
Gosub LANCCLAC : For KK=1 To B-2 : Ink C(KK) : Polygon DX#(KK),DY#(KK) To DX#(KK+1),DY#(KK+1) To DX#(KK+2),DY#(KK+2) To DX#(KK),DY#(KK) : Next KK : Screen Swap : Wait Vbl : Cls 0
If FLAG=1 Then Add N,6,1 To 360 Else N=N-6 : If N<3 Then N=360
Gosub LCLAC : For KK=1 To B-2 : Ink C(KK) : Polygon DX#(KK),DY#(KK) To DX#(KK+1),DY#(KK+1) To DX#(KK+2),DY#(KK+2) To DX#(KK),DY#(KK) : Next KK : Screen Swap : Wait Vbl : Cls 0
If S=2 Then H=72 : XD=8 : YD=4 : Gosub BLUE : Else Gosub RIPPLE
For N=1 To B
Add F,1,1 To 2
OX#(N)=Sin(N*H)*XD
OY#(N)=Cos(N*H)*YD
Next N
For N=1 To B Step 2
OX#(N)=OX#(N)/4
OY#(N)=OY#(N)/4
Next N
Return
RIPPLE:
Unpack 8 To 0
Auto View On : View
WIBBLE
Procedure WIBBLE
Curs Off
Flash Off
Autoback 0
FLAG=1
Z#=4
D#=1
Wait 30
Do
For U=1 To 12
For T=1 To 320 Step 1
D#=D#-0.0001
Add N,1,1 To 360 : Add F,5,1 To 256 : If FLAG=1 Then Gosub Z Else Gosub Z2
Screen Copy Logic,,F,340,F+11 To Physic,Sin(N*56)*2,F+Cos(N*14)*D#
Next T
Next U
Unpack 8 To 0
Double Buffer : Autoback 0
For U=1 To 22
For T=320 To 0 Step -1
D#=D#+0.0001
Add N,1,1 To 360 : Add F,5,1 To 256 : If FLAG=1 Then Gosub Z Else Gosub Z2
Screen Copy Logic,,F,340,F+11 To Physic,Sin(N*14)*Z#,F+Cos(N*7)*Z#*Z#
Next T
Next U
D#=1
Fade 4 : Wait 30 : Pop Proc
Loop
'
Z:
FLAG=1
Z#=Z#+0.01 : If Z#>7 Then FLAG=0
Return
Z2:
FLAG=0
Z#=Z#-0.01 : If Z#<-3 Then FLAG=1
Return
End Proc
BLUR
Procedure BLUR
Screen Open 0,320,256,4,0
Hide On
Curs Off
Flash Off
Cls 0
Double Buffer
Autoback 0
Degree : Auto View Off
Palette $0,$4,$9,$F
Update Off
Synchro Off
Sprite Update Off
Bob Update Off
B=25
'
X=2
Y=2
For N=1 To B
Add F,1,1 To 2
OX#(N)=Sin(N*X)*2
OY#(N)=Cos(N*Y)*2
OZ#(N)=N
If F=2 Then OZ#(N)=-N
Next N
For N=1 To B Step 2
OX#(N)=OX#(N)/2
OY#(N)=OY#(N)/2
OZ#(N)=OZ#(N)/2
Next N
FLAG=1
OFLAG=0
G=2
Cls 0
Z#=32
O#=5
Bob Off
View
Timer=0
SANE=6
SILLY=5
Do
If Timer>320 Then Timer=0 : SANE=Rnd(7)+1 : SILLY=Rnd(7)+1 : Gosub CHANGER : Cls 0 : Screen Copy Logic To Physic : Add C,1,1 To 3 : If C=1 Then Gosub B Else Gosub R : If C=2 Then Gosub G
Add N,1,1 To 360 : If FLAG=1 Then Gosub Z Else Gosub Z2
Gosub CLAC : For KK=1 To B : Paste Bob DX#(KK),DY#(KK),53 : Next KK : Screen Copy Logic,,,320,256 To Logic,15, : Wait Vbl : Screen Swap
Screen Open 0,320,246,8,0 : Screen Display 0,,,Screen Width,Screen Height-6
Hide On
Curs Off
Flash Off
Cls 0
Double Buffer
Autoback 0
Degree : Auto View Off
For N=1 To 7
Colour N,N+N
Next N
'
Update Off
Synchro Off
Sprite Update Off
Bob Update Off
Clip 12,12 To 300,231
B=14
Dim SYN#(360),COZ#(360)
Dim C(16)
For N=1 To B
Add F,1,1 To 2
OX#(N)=Sin(N*N)*5
OY#(N)=Cos(N*N)*5
Next N
Rem n
For N=1 To B Step 2
' Add F,1,1 To 2
OX#(N)=OX#(N)/1.2
OY#(N)=OY#(N)/1.2
' If F=2 Then OX#(N)=OX#(N)/4
Next N
View
For N=1 To 360
SYN#(N)=Sin(N*2)
COZ#(N)=Cos(N*2)
Next N
Cls 0
Z#=0.1
Timer=0
Do
If Timer>800 Then Pop Proc
If FLAG=1 Then Gosub Z Else Gosub Z2
Add N,1,1 To 360 : Gosub CLAC : For KK=1 To B-2 : Ink C(KK) : Polyline DX#(KK),DY#(KK) To DX#(KK+1),DY#(KK+1) To DX#(KK+2),DY#(KK+2) To DX#(KK),DY#(KK) : Next KK : Screen Swap
Gosub CLAC : For KK=1 To B-2 : Ink C(KK) : Polygon DX#(KK),DY#(KK) To DX#(KK+1),DY#(KK+1) To DX#(KK+2),DY#(KK+2) To DX#(KK),DY#(KK) : Next KK : Screen Swap : Wait Vbl : Cls 0
If Z#>32.8 Then Gosub CLAC : For KK=1 To B-2 : Ink C(KK) : Polygon DX#(KK),DY#(KK) To DX#(KK+1),DY#(KK+1) To DX#(KK+2),DY#(KK+2) To DX#(KK),DY#(KK) : Next KK : Screen Copy Logic To Physic : Pop Proc
Add N,1,1 To 360 : Gosub CLAC : For KK=1 To B-2 : Ink C(KK) : Polygon DX#(KK),DY#(KK) To DX#(KK+1),DY#(KK+1) To DX#(KK+2),DY#(KK+2) To DX#(KK),DY#(KK) : Next KK : Screen Swap : Wait Vbl : Cls 0
T$=" Code & Music By Scally 1996 Scroller will smooth out in a moment "
T$=T$+" If you like my music and need a musician for your group etc. then E-mail CA3TN @ DMU.AC.UK "
T$=T$+" Check out my homepage <--------> http:// www.cms.dmu.ac.uk / ~ca3tn / mailbomb.html which contains source code + other ego related stuff. "
T$=T$+" All samples taken from my home setup. Instrument noises from a Kawai K1 and a Cheetah MS6; Not many people realise that this uses the same SSM chips found in later model Prophet synths... Big Sound! "
T$=T$+" Percussion comes from an Alesis D4... "
T$=T$+" Amos is the ultimate RAD tool and this demo was created to put some well deserved credit back into Amos, which "
T$=T$+" doesn't deserve the 'Lame' tag. ( Due to shit programmer's releasing shit software... ) "
T$=T$+" Demo info... TURBO and CRAFT extensions were utilised for smooth fx and tracker Real-time zooming, rotating, shaded polygons, full screen, 8 colours...( intro used 32 colours!) What's the catch ? "
T$=T$+" No hidden line removal or clipping... It takes way too long to sort an array out; At least if you require demo speed. look out for more stuff in 96 / 97... "
_LENGTH=Len(T$)
Screen Open 0,320,512,32,0+Laced : Screen Display 0,,,Screen Width,Screen Height
Screen To Front 2
Screen To Front 1
For N=1 To 31
Colour N,N
Next N
Shift Up 1,1,31,1
Hide On
Curs Off
Flash Off
Cls 0
Degree : Auto View Off
Update Off
Synchro Off
Sprite Update Off
Bob Update Off
B=14
For N=1 To B
Add F,1,1 To 2
OX#(N)=Sin(N*8)*12
OY#(N)=Cos(N*25)*12
OZ#(N)=12
Next N
View
Cls 0
Z#=0.3
O#=0
S#=0.2
WX#=0.7
WY#=0.2
WZ#=0.3
A=1
SMEG#=1
G=1
Do
SS:
If FLAG=1 Then Gosub Z Else Gosub Z2
Add N,1,1 To 360 : Gosub CLAC : Add A,2,1 To 360 : Add W,1,1 To 50 : Screen 2 : Bob 1,190+Sin(A*3)*Z#,10,W : Bob Update
Screen 1 : Gosub _SCROLL : Screen 0 : Screen Swap
If R=1 Then Shift Down 1,1,31,1 : SMEG#=3 : Goto SS